home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
A-Monthly Disks
/
(c)abe.d64
/
diskmagic.2
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
10KB
|
376 lines
5 GOTO1530
10 PRINT "[147][213]NSCRATCH [198]ILES"
20 U=8:G=0:D=0
70 PRINT "[201]NSERT [196]ISK AND [200]IT [193]NY [203]EY..."
80 GET X$: IF X$=""THEN 80
90 PRINT "[197]NTER SCRATCHED FILE-NAME (OR END)"
100 PRINT " USE * AT NAME-END FOR WILD-CARD SEARCH"
110 INPUT " ? END[157][157][157][157][157]";N$: IF N$="END" THEN3998
120 V=16: Q=32: F=256: T=18: S=1: W=0
130 Z$=CHR$(0): D$=RIGHT$(STR$(D),1)
140 N$=LEFT$(N$,V): L=LEN(N$)
150 IF RIGHT$(N$,1)<>"*" THEN 170
160 L=L-1: N$=LEFT$(N$,L): W=1:GOTO 190
170 IF L=V THEN 190
180 FOR X=L+1 TO V: N$=N$+CHR$(160): NEXT: L=V
190 OPEN 1,U,15,"I"+D$: GOSUB 500
200 OPEN 2,U,2,"#": GOSUB 500
210 PRINT#1,"U1:";2;D;T;S: GOSUB 500
220 PRINT#1,"B-P:";2;0: GET#2,A$,B$
230 TR=ASC(A$+Z$): SC=ASC(B$+Z$): H=2
240 PRINT#1,"B-P:";2;H: GET#2,T$
250 C=ASC(T$+Z$): IF C>0 THEN 290
260 GET#2,A$,B$: F$="": FOR X=1 TO V
270 GET#2,T$: F$=F$+T$: NEXT: IF F$="" THEN 310
280 IF L=0 OR N$=LEFT$(F$,L) THEN 350
290 H=H+Q: IF H<F THEN 240
300 IF TR>0 THEN T=TR: S=SC: GOTO 210
310 IF W THEN PRINT " END OF DIRECTORY": GOTO 470
320 PRINT "[212]HERE IS NO SCRATCHED"
325 PRINT "FILE WITH THE NAME: ";N$
330 PRINT "IN THE DIRECTORY"
340 FOR X=1 TO 4000: NEXT: GOTO 490
350 A=ASC(A$+Z$): B=ASC(B$+Z$)
360 PRINT "FOUND FILE: ";F$
370 PRINT " AT TRACK";A;" SECTOR";B
380 PRINT "WANT TO REVIVE THIS FILE (Y/N) ? Y[157][157][157]";
390 INPUT X$: IF X$="Y" THEN 410
400 IF W THEN 290
405 GOTO470
410 PRINT "1=SEQ 2=PRG 3=USR 4=REL"
420 PRINT "ENTER FILE-TYPE (1-4) ? 1[157][157][157]";
430 INPUT P: IF P<1 OR P>4 THEN PRINT "[145][145]": GOTO 400
440 PRINT#1,"B-P:";2;H: PRINT#2,CHR$(P+128);
450 PRINT#1,"U2:";2;D;T;S:GOSUB 500:G=1
460 PRINT "UN-SCRATCHED FILE: ";F$: IF W THEN 290
470 PRINT "REVIVE MORE FILES (Y/N) ? Y[157][157][157]";
480 INPUT X$: IF X$<>"Y" THEN 520
490 CLOSE 2: CLOSE 1: GOTO 90
500 INPUT#1,E,M$,J,K:IF E=0 THEN RETURN
510 PRINT " ERROR: ";E;M$;J;K
520 CLOSE 2: CLOSE 1: IF G=0 THEN 3998
530 PRINT "[147][210]E-BUILDING VALID [194][193][205]"
540 PRINT "ON [196]ISK-[213]NIT";U;" DRIVE";D
550 OPEN 1,U,15,"V"+D$: CLOSE 1: GOTO3998
1530 REM INTRODUCTION
1540 PRINT "[147]";CHR$(14):POKE 657,128
1550 POKE 53280,0:POKE 53281,0
1560 :
1570 FOR X=1 TO 40
1580 : PRINT " ";
1590 NEXT X
1600 :
1610 FOR X=1 TO 11
1620 : PRINT " ";SPC(38);" ";
1630 : PRINT " ";SPC(38);" ";
1640 NEXT X
1650 :
1660 FOR X=1 TO 39
1670 : PRINT " ";
1680 NEXT X
1690 :
1700 PRINT "[157]";IN$;" ";
1710 :
1720 L1$="[158][208]ROGRAM [196]ESIGINED [194]Y [212]HE [196]EMON! "
1730 L2$="[158][205]ISFIT [205]ANOR 731-9773 "
1740 P1$=""
1750 P2$=""
1760 S=1:F=28
1770 :
1780 PRINT "[196]ISKMAGIK ]["
1790 PRINT "([195]) 1987"
1791 PRINT "[196]EMON[211]OFT [201]NC."
1800 :
1810 : REM START LOOP
1820 GET W$:IF W$=" " THEN 1900
1830 FOR DL=1 TO 50:NEXT DL
1840 PRINT P1$;RIGHT$(L1$,S);LEFT$(L1$,F);
1850 PRINT P2$;RIGHT$(L2$,F);LEFT$(L2$,S);
1860 :
1870 IF F=0 THEN F=28:S=1
1880 F=F-1:S=S+1
1890 GOTO 1820
1900 PRINT"[147]"
2000 FORX=1TO40
2010 PRINT " ";
2020 NEXTX
2030 FORX=1TO22
2040 PRINT " "SPC(38)" ";
2050 NEXTX
2060 FORX=1TO40
2070 PRINT " ";
2080 NEXTX
2090 PRINT "[196]ISKMAGIK ]["
3000 PRINT "[158][195]REATED [194]Y [212]HE [196]EMON"
3010 PRINT "[159][207]N [207]CTOBER 2, 1987"
3020 PRINT "[208]RESS ANY [203]EY [198]OR [205]ENU"
3030 GETA$:IFA$=""THEN3030
3031 POKE53280,2
3900 CLR
3998 CLR:PRINT "[147] [159]************************"
3999 PRINT " [159]**[196]ISKMAGIK ][ [207]PTIONS[159]**"
4000 PRINT " [159]************************"
4001 PRINT " [[198]] [198]ORMAT A [196]ISK"
4002 PRINT " [[214]] [214]ALIDATE A [196]ISK"
4003 PRINT " [[196]] [196]ISK [196]IRECTORY"
4004 PRINT " [[201]] [201]NITIALIZE [196]RIVE"
4005 PRINT " [[210]] [210]EAD A [211]EQ. [198]ILE"
4006 PRINT " [[208]] [208]RINT A [211]EQ. [198]ILE"
4007 PRINT " [[206]] [206]EW A [196]ISK ([212]RACK 18)
4008 [153] " [(null)]CLOSE(null)CRATCH A ASCILE"
4009 [153] " [(null)] (null)NSCRATCH A ASCILE"
4010 [153] " [LEN] LENHANGE (null)CREEN LENOLORS"
4020 [153] " [LEFT$] STR$ISK LEFT$EADER LENHANGE"
4030 [153] " [(null)] STR$ISK RIGHT$.STR$. LENHANGE"
4040 [153] " [@] STR$ISK STR$RIVE (null)TATUS"
4050 [153] " [*] STR$ISK (null)ROTECTOR"
4060 [153] " [#] STR$ISK (null)NPROTECTOR"
4070 [153] " [^] (null)RITE (null)ROTECT STR$ECTECTOR"
4090 [153] " [(null)] VALXIT STR$ISKMAGIK ]["
4091 [153] " [(null)] (null)EST STR$RIVE ATNLIGNMENT"
4092 [153] " [!] (null)ENAME A ASCILE"
5000 [161]CA$:[139]CA$[178]""[167]5000
5001 [139]CA$[178]"F"[167]6000
5002 [139]CA$[178]"D"[167]7000
5003 [139]CA$[178]"I"[167][159]15,8,15,"I":[160]15:[137] 3998
5004 [139]CA$[178]"R"[167]8000
5005 [139]CA$[178]"P"[167]9000
5006 [139]CA$[178]"N"[167]10000
5007 [139]CA$[178]"S"[167]11000
5008 [139]CA$[178]"U"[167]10
5009 [139]CA$[178]"C"[167]13000
5010 [139]CA$[178]"H"[167]14000
5011 [139]CA$[178]"M"[167]15000
5012 [139]CA$[178]"@"[167]16000
5013 [139]CA$[178]"*"[167]17000
5014 [139]CA$[178]"#"[167]18000
5015 [139]CA$[178]"^"[167]19000
5016 [139]CA$[178]"X"[167]20000
5017 [139]CA$[178]"T"[167]21000
5018 [139]CA$[178]"V"[167]22000
5019 [139]CA$[178]"!"[167]12000
5020 [137] 5000
6000 [153] "LOADASCORMAT STR$ISK"
6001 HD$[178]"":ID$[178]""
6002 [133] "STR$ISKETTE (null)ITLE";HD$:[139]HD$[178]""[167]3998
6003 HD$[178][200](HD$,16)
6004 [133]"STR$ISKETTE RIGHT$STR$";ID$
6005 [139]ID$[178]""[167]3998
6006 ID$[178][200](ID$[170]" ",2)
6007 [153] "RIGHT$NSERT STR$ISK (null)O ASCORMAT AND HIT A (null)EY"
6008 [161]ET$:[139]ET$[178]""[167]6008
6009 [153]"LOADASCORMATTING..."
6010 [159]15,8,15,"N0:"[170]HD$[170]","[170]ID$
6020 [132]15,A$,B$,C$,D$:[153] "";A$",";B$",";C$",";D$
6030 [160]15
6040 [153]"(null)RESS ANY KEY"
6050 [161]ET$:[139]ET$[178]""[167]6050
6060 [137] 3900
7000 [153] "LOAD":P$[178][199](0)
7001 [159]9,8,0,"$0":[161]#9,K$,K$
7002 [161]#9,K$,K$:[139]K$[178]""[167][160]9:[137] 7100
7003 [161]#9,K$,L$:[153][198](K$[170]P$)[170][198](L$[170]P$)[172]256;
7004 [161]#9,K$:[153]K$;:[139]K$[179][177]""[167]7004
7005 [153]:[137]7002
7100 [153]" (null)RESS ANY KEY"
7101 [161]ET$:[139]ET$[178]""[167]7101
7102 [137] 3900
8000 [153] "LOAD(null)EQ ASCILE (null)EADER"
8001 [153] "(null)AME OF ASCILE (null)O (null)EAD";
8002 [133] REA$:[139]REA$[178]""[167]3998
8003 [153]"LOAD":[159]8,8,8,REA$:[129]I[178]0[164]1:[161]#8,A$:I[178]ST:[153]A$;:[130]:[160]8
8004 [159]15,8,15
8005 [153] "":[132]15,A$,B$,C$,D$:[153]A$",";B$",";C$","D$
8006 [160]15
8007 [153]"(null)RESS ANY KEY"
8008 [161]ET$:[139]ET$[178]""[167]8008
8009 [137] 3998
9000 [153] "LOAD(null)RINT A (null)EQ. ASCILE"
9001 [153] "(null)AKE SURE THAT THE PRINTER IS TURNED ON"
9002 [153] "AND THAT THERE IS PAPER IN IT. (null)OU MAY"
9003 [153] "FIND THE PRINTING PROCESS TO BE QUITE"
9004 [153] "LONG SO PRINTING LONG DOCUMENTS IS NOT"
9005 [153] "ADVISED!"
9006 [133]"(null)AME OF ASCILE (null)O (null)RINT";PR$:[139]PR$[178]""[167]3998
9007 [159]7,4,7:[153]"LOAD"
9008 [159]2,8,2,""[170]PR$[170]""
9009 [161]#2,A$:SS[178]ST:[152]7,A$;:[153]A$;:[139]SS[178]0[167]9009
9010 [152]7:[160]2
9011 [160]7
9012 [159]15,8,15:[132]15,A$,B$,C$,D$
9013 [153]""
9014 [153]A$",";B$",";C$",";D$
9015 [160]15
9016 [153] "(null)RESS ANY KEY"
9017 [161]ET$:[139]ET$[178]""[167]9017
9018 [137] 3900
10000 [153] "LOAD(null)EW A STR$ISKETTE"
10001 [153] "(null)HIS IS A ASCAST ASCORMAT AND WILL ONLY"
10002 [153] "DO CLEAR TRACK 18. (null)NLY USE THIS ON"
10003 [153] "PREVIOUSLY FORMATTED DISKS."
10004 [133] "STR$ISKETTE (null)AME";W$
10005 [139]W$[178]""[167]3998
10006 [153]"RIGHT$NSERT STR$ISK TO PEEKE (null)EWED AND PRESS A KEY"
10007 [161]ET$:[139]ET$[178]""[167]10007
10008 [159]15,8,15
10009 [152]15,"N0:";W$
10010 [153]""
10011 [132]15,A$,B$,C$,D$
10012 [153]A$",";B$",";C$",";D$
10013 [160]15
10014 [153]"(null)RESS ANY KEY"
10015 [161]ET$:[139]ET$[178]""[167]10015
10016 [137] 3900
11000 [153] "LOAD(null)CRATCH ASCILES"
11001 [153] "(null)RACTCHED ASCILES MAY BE UN-SRATCHED WITH"
11002 [153] "THIS PROGRAM AS WELL!"
11003 [133] "ASCILE (null)O PEEKE (null)CRATCHED";SCR$
11004 [139]SCR$[178]""[167]3998
11005 [159]15,8,15
11006 [152]15,"S0:";SCR$
11007 [153]""
11008 [132]15,A$,B$,C$,D$:[153]A$",";B$",";C$",";D$
11009 [160]15:[153]"(null)RESS ANY KEY"
11010 [161]ET$:[139]ET$[178]""[167]11010
11011 [137] 3900
12000 [153]"LOAD(null)ENAME A ASCILE"
12001 OL$[178]"":[133]"(null)LD ASCILENAME";OL$:[139]OL$[178]""[167]3998
12002 [139][195](OL$)[177]16[167][153]"16 CHARACTERS ONLY!":[137]12001
12003 NW$[178]"":[133]"(null)EW ASCILENAME";NW$:[139]NW$[178]""[167]3998
12004 [139][195](NW$)[177]16[167][153]"16 CHARACTERS ONLY!":[137]12003
12005 [159]15,8,15:[152]15,"R0:"[170]NW$[170]"="[170]OL$
12006 [132]15,A$,B$,C$,D$:[153]""[170]A$[170]","[170]B$[170]","[170]C$[170]","[170]D$:[160]15
12007 [153]"LEFT$IT ANY (null)EY."
12008 [161]A$:[139]A$[178]""[167]12008
12009 [137]3998
13000 [153] "LOADASC1 - PEEKACKGROUND LENOLOUR"
13001 [153] "ASC3 - ASCOREGROUND LENOLOUR"
13002 [153] "ASC5 - LENURSOR LENOLOUR"
13003 [153] "ASC7 - (null)AIN (null)ENU"
13004 [161]COL$:[139]COL$[178]""[167]13004
13005 [139]F1[177]15[167]F1[178]0
13006 [139]F2[177]15[167]F2[178]0
13007 [139]F3[177]15[167]F3[178]0
13008 [139]COL$[178]"INPUT"[167][151]53280,F1:F1[178]F1[170]1
13009 [139]COL$[178]"DIM"[167][151]53281,F2:F2[178]F2[170]1
13010 [139]COL$[178]"READ"[167][151]646,F3:F3[178]F3[170]1
13011 [139]COL$[178]"LET"[167]3900
13012 [137] 13000
14000 [153]"LOADLENHANGE STR$ISK LEFT$EADER"
14001 [153]"RIGHT$NSERT STR$ISK (null)O LENHANGE AND LEFT$IT A (null)EY"
14002 [161]A$:[139]A$[178]""[167]14002
14003 [159]15,8,15,"I":[159]5,8,5,"#"
14004 B$[178]"":[152]15,"U1:5,0,18,0":[152]15,"B-P:5,144"
14005 [129]J[178]1[164]16:[161]#5,A$:A$[178][199]([198](A$[170][199](0))):B$[178]B$[170]A$:[130]
14006 [153]"LENURRENT LEFT$EADER: "[170]B$
14007 [133]"(null)EW LEFT$EADER";N$:[139]N$[178]""[167][160]5:[160]15:[137]3998
14008 [139][195](N$)[177]16[167][153]"16 LENHARACTER (null)AXIMUM!":[137]14007
14009 [139][195](N$)[179]16[167]N$[178]N$[170][199](160):[137]14009
14010 [152]15,"B-P:5,144":[152]5,N$:[152]15,"U2:5,0,18,0":[160]5
14011 [152]15,"I":[132]15,A$,B$,C$,D$:[153]""[170]A$[170]","[170]B$[170]","[170]D$[170]","[170]D$
14012 [160]15:[153]"LEFT$IT ATNNY (null)EY."
14013 [161]A$:[139]A$[178]""[167]14013
14014 [137]3998
15000 [153]"LOADLENHANGE STR$ISK RIGHT$.STR$."
15001 [153]"RIGHT$NSERT STR$ISK (null)O LENHANGE AND LEFT$IT A (null)EY"
15002 [161]A$:[139]A$[178]""[167]15002
15003 [159]15,8,15,"I":[159]5,8,5,"#":B$[178]""
15004 [152]15,"U1:5,0,18,0":[152]15,"B-P:5,162"
15005 [129]J[178]1[164]2:[161]#5,A$:A$[178][199]([198](A$[170][199](0))):B$[178]B$[170]A$:[130]
15006 [153]"LENURRENT RIGHT$NITIAL: "[170]B$
15007 [133]"(null)EW RIGHT$NITIAL? --CMDCMDCMDCMD";N$:[139]N$[178]""[167][160]5:[160]15:[137]3998
15008 [139][195](N$)[179][177]2[167][153]"2 LENHARACTER RIGHT$STR$ (null)LEASE!":N$[178]"":[137]15007
15009 [152]15,"B-P:5,162":[152]5,N$[170]" 2A":[152]15,"U2:5,0,18,0":[160]5
15010 [152]15,"I":[132]15,A$,B$,C$,D$:[153]""[170]A$[170]","[170]B$[170]","[170]C$[170]","[170]D$
15011 [160]15:[153]"LEFT$IT ANY (null)EY."
15012 [161]A$:[139]A$[178]""[167]15012
15013 [137]3998
16000 [153] "LOAD"
16001 [159]15,8,15:[132]15,A$,B$,C$,D$
16002 [153]A$",";B$",";C$",";D$
16003 [153] "(null)RESS ANY KEY":[160]15
16004 [161]ET$:[139]ET$[178]""[167]16004
16005 [137] 3900
17000 [153]"LOAD(null)ROTECT STR$ISK"
17001 [153]"(null)HIS IS THE SAME AS PUTTING A WRITE"
17002 [153]"PROTECT TAB ON THE DISK EXCEPT THAT"
17003 [153]"THE DISK CAN STILL BE FORMATTED"
17004 [153]"WITHOUT THE ELECTRONIC WRITE PROTECT"
17005 [153]"REMOVED..."
17006 [153]"RIGHT$NSERT STR$ISK AND LEFT$IT ANY (null)EY.."
17007 [161]A$:[139]A$[178]""[167]17007
17008 [159]15,8,15,"I":[159]2,8,2,"#":[152]15,"U1:";2;0;18;0:[132]15,A$
17009 [139][197](A$)[177]0[167][152]15,"I":[160]15:[160]2:[137]3998
17010 [152]15,"B-P:";2;2
17011 [152]2,[199](1);:[152]15,"U2:";2;0;18;0:[160]2:[152]15,"I":[160]15
17012 [137]3998
18000 [153]"LOAD(null)N-(null)RITE (null)ROTECT STR$ISK"
18001 [153]"LEFT$IT A (null)EY (null)O (null)TART!"
18002 [161]A$:[139]A$[178]""[167]18002
18003 [159]15,8,15,"I":[159]2,8,2,"#"
18004 [152]15,"U1:";2;0;18;0
18005 [152]15,"B-P:";2;2
18006 [152]2,[199](65);
18007 [152]15,"M-W";[199](1);[199](1);[199](1);[199](65)
18008 [152]15,"M-W";[199](2);[199](7);[199](1);[199](65)
18009 [152]15,"U2:";2;0;18;0
18010 [160]2:[152]15,"I":[160]15:[137]3998
19000 [153] "LOAD(null)RITE (null)ROTECT STR$ETECTOR"
19001 [153] "(null)HIS WILL TELL IF A DISK HAS BEEN"
19002 [153] "ELECTRONICALLY WRITE PROTECTED. RIGHT$F IT"
19003 [153] "IS AND YOU WISH TO UN-PROTECT IT THEN"
19004 [153] "JUST USE THE UN-PROTECTOR ON THIS"
19005 [153] "PROGRAM."
19006 [153] "RIGHT$NSERT STR$ISK AND (null)RESS A (null)EY"
19007 [161]ET$:[139]ET$[178]""[167]19007
19008 [159]15,8,15
19009 [152]15,"M-R"[199](0)[199](28)
19010 [161]#15,L$:L[178][198](L$[170][199](0))[175]16
19011 [139]L[178]0[167][153]"STR$ISK IS SYS(null)ROTECTED!":[160]15:[137] 19013
19012 [153] "STR$ISK IS SYS(null)N-(null)ROTECTED!":[160]15
19013 [153] "(null)RESS ANY KEY"
19014 [161]ET$:[139]ET$[178]""[167]19014
19015 [137] 3900
20000 [129]A[178]1[164]1000:[130]A
20001 [153] "LOAD(null)UPERSTR$ISK ]["
20002 [153] "PEEKY (null)HE STR$EMON"
20003 [153] "(LEN) 1987 STR$EMONSOFT"
20004 [162]
21000 [153] "LOADSTR$RIVE ATNLIGNMENT (null)EST"
21001 [153] "LEFT$AVE A GOOD QUALITY DISK IN THE DRIVE"
21002 [153] "AND PRESS (null)VAL(null)(null)(null)(null) TO BEGIN."
21003 [161]TS$:[139]TS$[179][177][199](13)[167]21003
21004 [153] "LOAD(null)ESTING..."
21005 [159]15,8,15:[159]2,8,2,"#"
21006 [152]15,"M-W"[199](0)[199](0)[199](1)[199](192)
21007 T[178]35
21008 T$[178][196](T)
21009 [152]15,"U1: 2 0"T"9"
21010 [141] 21019
21011 [152]15,"U1: 2 0 1 9"
21012 T$[178][196](1)
21013 [141] 21019
21014 T[178]T[171]1:[139]T[177]0[167]21008
21015 [160]2:[160]15:[153]"LOADSTR$RIVE LEFT$AS (null)ASSED (null)EST!"
21016 [153] "(null)RESS ANY KEY."
21017 [161]ET$:[139]ET$[178]""[167]21017
21018 [137] 3900
21019 [153]"(null)EADING (null)RACK #";T$,
21020 [132]15,A$,B$,C$,D$
21021 [153]A$",";B$",";C$",";D$
21022 [139][197](A$)[179]2[167][142]
21023 [153]"LOADSTR$RIVE (null)UT OF ATNLIGNMENT!"
21024 [160]2:[160]15
21025 [153] "(null)RESS ANY KEY"
21026 [161]ET$:[139]ET$[178]""[167]21026
21027 [137] 3900
22000 [153] "LOAD(null)ALIDATING STR$ISK..."
22001 [159]15,8,15,"V0"
22002 [153]""
22003 [132]15,A$,B$,C$,D$
22004 [153]A$",";B$",";C$",";D$
22005 [160]15
22006 [153]"(null)RESS ANY KEY"
22007 [161]ET$:[139]ET$[178]""[167]22007
22008 [137] 3900